// Devastators

ACTOR Devastator : IDMWeapon
{
	Inventory.PickupSound "misc/w_pkup"
	Inventory.PickupMessage "Devastators!"
	Tag "Devastators"
	Weapon.AmmoType "IDMRocketAmmo"
	Weapon.AmmoGive 15
	Weapon.AmmoUse 1
	Weapon.PreferredSkin "DualChaingunMarine"
	Weapon.Selectionorder 50
	Weapon.SlotNumber 7
	+WEAPON.BFG
	+WEAPON.EXPLOSIVE
	+WEAPON.NOLMS
	States
	{
    Spawn:
        DVGG A -1 Bright
        Loop
    Ready:
        DEVS A 1 A_WeaponReady
        Loop
    Deselect:
        DEVS A 1 A_Lower
        Loop
    Select:
		TNT1 A 0 A_PlaySound("weapons/devpick",CHAN_WEAPON)
		TNT1 A 0 A_Playsound("weapons/duke",CHAN_AUTO)
	Sloop:
        DEVS A 1 A_Raise
        Loop
    Fire:
		DEVS B 0 A_Light2
		DEVS B 0 A_PlayWeaponSound("weapons/devshot")
	    NULL A 0 A_JumpIfInventory("Devcheck",1,"fire2")
		TNT1 A 0 A_JumpIfInventory("PowerIDMWeaponLevel2",1,"Level2")
		TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"Quad")
		DEVS AAAA 0 A_FireCustomMissile("DevastatorRocket",random(-5,5),0,5,5)
		DEVS C 1 Bright A_FireCustomMissile("DevastatorRocket",random(-5,5),1,5,6)
		DEVS E 2 Bright
		DEVS HI 1 Bright A_Light0
		NULL A 0 A_GiveInventory("Devcheck",1)
		DEVS A 1
		Goto Ready
	Quad:
		TNT1 A 0 A_Playsound("misc/qdmg2",CHAN_5,1)
		DEVS AAAA 0 A_FireCustomMissile("ExtremeDevastatorRocket",random(-5,5),0,5,5)
		DEVS C 1 Bright A_FireCustomMissile("ExtremeDevastatorRocket",random(-5,5),1,5,5)
		Goto Fire+10
	Level2:
		DEVS AAAAAAAAA 0 A_FireCustomMissile("DevastatorRocket",random(-8,8),0,5,5)
		DEVS C 1 Bright A_FireCustomMissile("DevastatorRocket",random(-8,8),1,5,5)
		DEVS E 2 Bright
		DEVS HI 1 Bright A_Light0
		NULL A 0 A_GiveInventory("Devcheck",1)
		DEVS A 1
		Goto Ready
	Fire2:
		TNT1 A 0 A_JumpIfInventory("PowerIDMWeaponLevel2",1,"Level22")
		TNT1 A 0 A_JumpIfInventory("PowerQuadDamage",1,"Quad2")
		DEVS AAAA 0 A_FireCustomMissile("DevastatorRocket",random(-5,5),0,-5,5)
		DEVS J 1 Bright A_FireCustomMissile("DevastatorRocket",random(-5,5),1,-5,5)
		DEVS L 2 Bright
		DEVS NPQ 1 Bright A_Light0
		DEVS A 1
		NULL A 0 A_TakeInventory("Devcheck",1)
		Goto Ready
	Quad2:
		TNT1 A 0 A_Playsound("misc/qdmg2",CHAN_5,1)
		DEVS AAAA 0 A_FireCustomMissile("ExtremeDevastatorRocket",random(-5,5),0,-5,5)
		DEVS J 1 Bright A_FireCustomMissile("ExtremeDevastatorRocket",random(-5,5),1,-5,5)
		Goto Fire2+7
	Level22:
		DEVS B 0 A_PlayWeaponSound("weapons/devshot")
		DEVS AAAAAAAAA 0 A_FireCustomMissile("DevastatorRocket",random(-8,8),0,-5,5)
		DEVS C 1 Bright A_FireCustomMissile("DevastatorRocket",random(-8,8),1,-5,5)
		DEVS LNPQR 1 Bright A_Light0 
		DEVS A 1 
		NULL A 0 A_TakeInventory("Devcheck",1)
		Goto Ready
	}
}

ACTOR Devcheck : Inventory
{
   Inventory.MaxAmount 1
}

ACTOR DevastatorRocket : IDMRocket
{
	Radius 4
	Height 4
	Speed 32
	Scale 0.3
	Damage (10*random(1,10))
	Projectile
	SeeSound "weapons/devlnch"
	DeathSound "weapons/devexpl"
	Obituary "%o got devastated by %k's Devastators."
	-ROCKETTRAIL
	-NOTELEPORT
	+EXTREMEDEATH
	States
	{
	Death:
	  MISL B 6 Bright A_Explode(128,32)
	  MISL C 5 Bright
	  MISL D 4 Bright
      Stop
    }
}

ACTOR ExtremeDevastatorRocket : DevastatorRocket
{
	States
	{
	XDeath:
	  TNT1 A 0 A_Playsound("misc/crit",CHAN_AUTO)
	  Goto Death
    }
}